#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <map>
#include <algorithm>

using namespace std;

typedef pair<int,int> pii;
//typedef long long lld;

pii getKey[100100],revKey[100100];
map<pii,int> gx,gy;

int gcd(int a,int b)
{
	while(a&&b) a>b?a%=b:b%=a;
	return a+b;
}
int rev(int src)
{
	int t;
	for(t=0;src;src/=10)
	{
		t=t*10+src%10;
	}
	return t;
}
void init(int n)
{
	for(int i=1;i<=n;i++)
	{
		int b=rev(i);
		int cd=gcd(i,b);
		getKey[i]=pii(i/cd,b/cd);
		revKey[i]=pii(b/cd,i/cd);
	}
}
pii getRes(int maxx,int maxy,int w)
{
	int x,y;
	x=y=100010;
	for(int i=1,j=0,cnt=0;i<=maxx;i++)
	{
		gx[getKey[i]]++;
		//printf("getKey[%d]= (%d,%d) %d\n",i,getKey[i].first,getKey[i].second,gy[getKey[i]]);
		cnt+=gy[revKey[i]];
		while(cnt<w&&j<maxy)
		{
			cnt+=gx[revKey[++j]];
			//printf("%d: cnt=%d\n",j,cnt);
			gy[getKey[j]]++;
		}
		while(j>0&&cnt-gx[revKey[j]]>=w)
		{
			cnt-=gx[revKey[j]];
			gy[getKey[j]]--;
			j--;
		}
	//	printf("%d %d = %d\n",i,j,cnt);
		if(cnt>=w&&(1LL*i*j<1LL*x*y)) x=i,y=j;
	}
	return pii(x,y);
}
int main()
{
	int maxx,maxy,w;
	cin>>maxx>>maxy>>w;
	init(max(maxx,maxy));
	pii res=getRes(maxx,maxy,w);
	if(res.first==100010) puts("-1");
	else printf("%d %d\n",res.first,res.second);
	return 0;
}
